// 引入所需模块：http（创建服务）、fs（读取本地图片）、path（处理文件路径）
const http = require('http');
const fs = require('fs');
const path = require('path');

// 1. 创建HTTP服务
const server = http.createServer((req, res) => {
  // 仅处理根路径请求（localhost:8081/）
  if (req.url === '/') {
    // 2. 读取本地图片文件（需提前准备一张图片，如test.png，与脚本同目录）
    const imgPath = path.join(__dirname, 'test.png'); // 图片路径
    try {
      // 读取图片文件为Buffer（二进制数据）
      const imgBuffer = fs.readFileSync(imgPath);
      // 将Buffer转换为Base64编码（Data URI格式：data:image/格式;base64,编码内容）
      const imgBase64 = `data:image/png;base64,${imgBuffer.toString('base64')}`;

      // 3. 构造响应的HTML内容（嵌入Base64图片） 
      const html = `
        <!DOCTYPE html>
        <html lang="zh-CN">
        <head>
          <meta charset="UTF-8">
          <title>Buffer图片展示</title>
          <style>img { width: 300px; border: 1px solid #eee; }</style>
        </head>
        <body>
          <h1>Node.js Buffer图片（Base64编码）</h1>
          <img src="${imgBase64}" alt="测试图片">
        </body>
        </html>
      `;

      // 4. 设置响应头并返回HTML
      res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
      res.end(html);

    } catch (error) {
      // 处理图片读取失败的情况
      res.writeHead(500, { 'Content-Type': 'text/plain; charset=utf-8' });
      res.end(`图片读取失败：${error.message}\n请在脚本同目录放置test.png图片`);
    }
  } else {
    // 处理非根路径请求（404）
    res.writeHead(404, { 'Content-Type': 'text/plain; charset=utf-8' });
    res.end('404 - 页面未找到！请访问：localhost:8081');
  }
});

// 5. 启动服务，监听8081端口
const port = 8081;
server.listen(port, () => {
  console.log(`服务已启动！请在浏览器访问：http://localhost:${port}`);
});